A Typed Approach to Layered Programming Language DesignShail
نویسنده
چکیده
We investigate the design of a powerful type system for a polymorphic, functional programming language with an imperative kernel. The proposed type system has the power to transparently encapsulate an imperative implementation of a functional construct into a sound, polymorphic, functional abstraction. Thus, it facilitates a layered approach to language design by allowing arbitrary, high-level, functional abstractions to be built on top of a small and eecient imperative kernel.
منابع مشابه
Combinators for layered software architectures
We define a domain specific embedded language in Haskell to describe layered software architectures of editors. By using a typed programming language to describe the architecture, the type correctness of its components is guaranteed by the type checker of the language. Furthermore, because the architecture description of a system is part of the implementation of the system, the implementation w...
متن کاملPersistent Threads
Persistent threads are a database programming concept particularly well-suited for a.pplications that manage long-term, distributed or cooperative activities. We introduce persistent threads as a novel form of bindings from data in persistent object stores to activated code and relate them to existing binding concepts found in database programming. We also describe the integration of persistent...
متن کاملA Declarative Semantics for Typed Logic Programs
Many typed (sorted) logic programming languages are based on sorted logics in which there is typically a set of well-sortedness rules in addition to the ordinary well-formedness rules. An advantage of this approach is that type checking is typically decidable. However such an approach restricts the expressiveness of typed logic programming language. On the other hand, there is another approach ...
متن کاملDesign by Contract for Python
The idea of design by contract (DBC), realized in the statically typed object-oriented programming language Eiffel, can be viewed as a systematic approach to specifying and implementing object-oriented software systems. We believe that a statically typed programming language is not suitable in the analysis and design phase of a prototyping-oriented software life cycle. For this purpose, dynamic...
متن کاملHaskell as an Architecture Description Language
We define a domain specific embedded language in Haskell for describing layered software architectures which maintain bidirectional dependencies. By using a typed programming language to describe the architecture, the type correctness of its components is guaranteed by the type checker of the language. Because, contrary to the situation with typical Architecture Description Languages, the descr...
متن کامل